Routes হলো CodeIgniter-এর একটি গুরুত্বপূর্ণ ফিচার, যা URL এবং কন্ট্রোলারের মেথড-এর মধ্যে সম্পর্ক স্থাপন করে। এটি ব্যবহারকারীর রিকোয়েস্ট অনুযায়ী নির্দিষ্ট কন্ট্রোলার এবং মেথড লোড করার জন্য ব্যবহৃত হয়। Routes কনফিগার করার মাধ্যমে আপনি ডিফল্ট রাউট, কাস্টম URL, এবং ডাইনামিক রাউট তৈরি করতে পারেন।
CodeIgniter এ Routes কনফিগারেশন ফাইলটি app/Config/Routes.php
ডিরেক্টরিতে অবস্থিত। এই ফাইলেই সমস্ত রাউট ডিফাইন করা হয়।
CodeIgniter এর ডিফল্ট রাউট নির্ধারণ করা হয় Routes.php
ফাইলে।
ডিফল্ট রাউট উদাহরণ:
$routes->setDefaultController('Home'); // Home কন্ট্রোলার ডিফল্ট
$routes->setDefaultMethod('index'); // index() মেথড ডিফল্ট
http://localhost/your_project/
আপনার নির্দিষ্ট URL-কে একটি নির্দিষ্ট কন্ট্রোলার এবং মেথডের সাথে ম্যাপ করতে কাস্টম রাউট ব্যবহার করুন।
কাস্টম রাউট উদাহরণ:
$routes->get('about', 'Pages::about'); // 'about' URL-এ 'Pages' কন্ট্রোলারের 'about' মেথড
http://localhost/your_project/about
ডাইনামিক রাউট ব্যবহার করে URL এর ভেরিয়েবল অংশ ধরতে পারেন।
ডাইনামিক রাউট উদাহরণ:
$routes->get('product/(:num)', 'Product::details/$1'); // URL-এ সংখ্যাকে ক্যাপচার করে
(:num)
: শুধুমাত্র সংখ্যা গ্রহণ করবে।(:any)
: যে কোনো অক্ষর বা সংখ্যা গ্রহণ করবে।http://localhost/your_project/product/123
RESTful API তৈরি করতে CodeIgniter এ resource
রাউট ব্যবহার করা হয়।
RESTful রাউট উদাহরণ:
$routes->resource('products');
এটি স্বয়ংক্রিয়ভাবে নিম্নলিখিত রাউট তৈরি করে:
/products
→ সমস্ত প্রোডাক্ট লিস্ট/products
→ নতুন প্রোডাক্ট যোগ/products/1
→ ID 1 এর প্রোডাক্ট ডিটেইলস/products/1
→ ID 1 এর প্রোডাক্ট আপডেট/products/1
→ ID 1 এর প্রোডাক্ট ডিলিটআপনার URL থেকে প্যারামিটার ক্যাপচার করতে পারেন।
$routes->get('blog/(:any)/(:num)', 'Blog::post/$1/$2');
http://localhost/your_project/blog/title/123
$1
→ title
$2
→ 123
প্যারামিটারের জন্য নিয়ম নির্ধারণ করতে পারেন।
$routes->get('user/(:alpha)', 'User::profile/$1'); // শুধুমাত্র অক্ষর গ্রহণ করবে
Routes এর সাথে Middleware বা Filter ব্যবহার করে নির্দিষ্ট পৃষ্ঠা সুরক্ষিত করতে পারেন।
$routes->get('dashboard', 'Dashboard::index', ['filter' => 'auth']);
এটি নিশ্চিত করে যে auth
ফিল্টার চেক করা হবে এবং শুধুমাত্র অথরাইজড ব্যবহারকারীরাই dashboard
অ্যাক্সেস করতে পারবে।
Routes চেক করার সময় সর্বাধিক নির্দিষ্ট রাউট সর্বপ্রথম কার্যকর হয়। তাই ডাইনামিক রাউটগুলোর আগে কাস্টম রাউট নির্ধারণ করা উচিত।
উদাহরণ:
$routes->get('blog/popular', 'Blog::popular'); // নির্দিষ্ট রাউট
$routes->get('blog/(:any)', 'Blog::post/$1'); // ডাইনামিক রাউট
Routes CodeIgniter এ URL গুলোকে সুসংগঠিত ও কার্যকরভাবে পরিচালনা করতে সাহায্য করে। সঠিকভাবে রাউট কনফিগার করলে অ্যাপ্লিকেশন দ্রুত এবং সুরক্ষিতভাবে কাজ করবে।
Read more